home *** CD-ROM | disk | FTP | other *** search
-
- {*******************************************************}
- { }
- { Delphi Runtime Library }
- { Windows 3.1 API Interface Unit }
- { }
- { Copyright (c) 1992,93 Borland International }
- { }
- {*******************************************************}
-
- Unit Dispatch;
-
- interface
-
- uses WinTypes, OLE2;
-
- const
- FADF_AUTO = 1; { array is allocated on the stack }
- FADF_STATIC = 2; { array is staticly allocated }
- FADF_EMBEDDED = 4; { array is embedded in a structure }
- FADF_FIXEDSIZE = $10; { array may not be resized or reallocated }
- FADF_BSTR = $100; { an array of BSTRs }
- FADF_UNKNOWN = $200; { an array of IUnknown }
- FADF_DISPATCH = $400; { an array of IDispatch }
- FADF_VARIANT = $800; { an array of VARIANTs }
- FADF_RESERVED = 61672; { bits reserved for future use }
-
- {
- VARENUM usage key,
-
- [V] - may appear in a VARIANT
- [T] - may appear in a TYPEDESC
- [P] - may appear in an OLE property set
- [S] - may appear in a Safe Array
-
- }
- VT_EMPTY = 0; { [V] [P] nothing }
- VT_NULL = 1; { [V] SQL style Null }
- VT_I2 = 2; { [V][T][P] 2 byte signed int }
- VT_I4 = 3; { [V][T][P] 4 byte signed int }
- VT_R4 = 4; { [V][T][P] 4 byte real }
- VT_R8 = 5; { [V][T][P] 8 byte real }
- VT_CY = 6; { [V][T][P] currency }
- VT_DATE = 7; { [V][T][P] date }
- VT_BSTR = 8; { [V][T][P] binary string }
- VT_DISPATCH = 9; { [V][T] IDispatch FAR* }
- VT_ERROR = 10; { [V][T] SCODE }
- VT_BOOL = 11; { [V][T][P] True=-1, False=0 }
- VT_VARIANT = 12; { [V][T][P] VARIANT FAR* }
- VT_UNKNOWN = 13; { [V][T] IUnknown FAR* }
-
- VT_I1 = 16; { [T] signed char }
- VT_UI1 = 17; { [T] unsigned char }
- VT_UI2 = 18; { [T] unsigned short }
- VT_UI4 = 19; { [T] unsigned short }
- VT_I8 = 20; { [T][P] signed 64-bit int }
- VT_UI8 = 21; { [T] unsigned 64-bit int }
- VT_INT = 22; { [T] signed machine int }
- VT_UINT = 23; { [T] unsigned machine int }
- VT_VOID = 24; { [T] C style void }
- VT_HRESULT = 25; { [T] }
- VT_PTR = 26; { [T] pointer type }
- VT_SAFEARRAY = 27; { [T] (use VT_ARRAY in VARIANT) }
- VT_CARRAY = 28; { [T] C style array }
- VT_USERDEFINED = 29; { [T] user defined type }
- VT_LPSTR = 30; { [T][P] null terminated string }
- VT_LPWSTR = 31; { [T][P] wide null terminated string }
-
- VT_FILETIME = 64; { [P] FILETIME }
- VT_BLOB = 65; { [P] Length prefixed bytes }
- VT_STREAM = 66; { [P] Name of the stream follows }
- VT_STORAGE = 67; { [P] Name of the storage follows }
- VT_STREAMED_OBJECT = 68; { [P] Stream contains an object }
- VT_STORED_OBJECT = 69; { [P] Storage contains an object }
- VT_BLOB_OBJECT = 70; { [P] Blob contains an object }
- VT_CF = 71; { [P] Clipboard format }
- VT_CLSID = 72; { [P] A Class ID }
-
- VT_VECTOR = $1000; { [P] simple counted array }
- VT_ARRAY = $2000; { [V] SAFEARRAY* }
- VT_BYREF = $4000; { [V] }
- VT_RESERVED = $8000;
-
-
- { Variant access macros }
-
- STDOLE_MAJORVERNUM = 1;
- STDOLE_MINORVERNUM = 0;
- STDOLE_LCID = 0;
-
- { OLE Automation error codes }
-
- DISP_E_UNKNOWNINTERFACE = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (1);
- DISP_E_MEMBERNOTFOUND = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (3);
- DISP_E_PARAMNOTFOUND = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (4);
- DISP_E_TYPEMISMATCH = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (5);
- DISP_E_UNKNOWNNAME = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (6);
- DISP_E_NONAMEDARGS = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (7);
- DISP_E_BADVARTYPE = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (8);
- DISP_E_EXCEPTION = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (9);
- DISP_E_OVERFLOW = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (10);
- DISP_E_BADINDEX = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (11);
- DISP_E_UNKNOWNLCID = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (12);
- DISP_E_ARRAYISLOCKED = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (13);
- DISP_E_BADPARAMCOUNT = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (14);
- DISP_E_PARAMNOTOPTIONAL = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (15);
- DISP_E_BADCALLEE = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (16);
- DISP_E_NOTACOLLECTION = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (17);
-
- TYPE_E_BUFFERTOOSMALL = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32790);
- TYPE_E_INVDATAREAD = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32792);
- TYPE_E_UNSUPFORMAT = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32793);
- TYPE_E_REGISTRYACCESS = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32796);
- TYPE_E_LIBNOTREGISTERED = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32797);
- TYPE_E_UNDEFINEDTYPE = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32807);
- TYPE_E_QUALIFIEDNAMEDISALLOWED = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32808);
- TYPE_E_INVALIDSTATE = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32809);
- TYPE_E_WRONGTYPEKIND = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32810);
- TYPE_E_ELEMENTNOTFOUND = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32811);
- TYPE_E_AMBIGUOUSNAME = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32812);
- TYPE_E_NAMECONFLICT = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32813);
- TYPE_E_UNKNOWNLCID = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32814);
- TYPE_E_DLLFUNCTIONNOTFOUND = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (32815);
- TYPE_E_BADMODULEKIND = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (35005);
- TYPE_E_SIZETOOBIG = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (35013);
- TYPE_E_DUPLICATEID = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (35014);
- TYPE_E_INVALIDID = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (35023);
- TYPE_E_TYPEMISMATCH = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (36000);
- TYPE_E_OUTOFBOUNDS = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (36001);
- TYPE_E_IOERROR = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (36002);
- TYPE_E_CANTCREATETMPFILE = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (36003);
- TYPE_E_CANTLOADLIBRARY = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (40010);
- TYPE_E_INCONSISTENTPROPFUNCS = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (40067);
- TYPE_E_CIRCULARTYPE = (SEVERITY_ERROR shl 31) or (FACILITY_DISPATCH shl 16) or (40068);
-
- { if not already picked up from olenls.h }
-
- VARIANT_NOVALUEPROP = 1;
- VAR_TIMEVALUEONLY = 1; { return time value }
- VAR_DATEVALUEONLY = 2; { return date value }
-
- { DISPID reserved for the standard "value" property }
- DISPID_VALUE = 0;
-
- { DISPID reserved to indicate an "unknown" name }
- DISPID_UNKNOWN = -1;
-
- { The following DISPID is reserved to indicate the param
- that is the right-hand-side (or "put" value) of a PropertyPut }
- DISPID_PROPERTYPUT = -3;
-
- { DISPID reserved for the standard "NewEnum" method }
- DISPID_NEWENUM = -4;
-
- { DISPID reserved for the standard "Evaluate" method }
- DISPID_EVALUATE = -5;
- DISPID_CONSTRUCTOR = -6;
- DISPID_DESTRUCTOR = -7;
-
- MEMBERID_NIL = DISPID_UNKNOWN;
- ID_DEFAULTINST = -2;
-
- IDLFLAG_NONE = 0;
- IDLFLAG_FIN = 1;
- IDLFLAG_FOUT = 2;
- IDLFLAG_FLCID = 4;
- IDLFLAG_FRETVAL = 8;
-
- { Flags for IDispatch::Invoke }
-
- DISPATCH_METHOD = 1;
- DISPATCH_PROPERTYGET = 2;
- DISPATCH_PROPERTYPUT = 4;
- DISPATCH_PROPERTYPUTREF = 8;
-
- TYPEFLAG_FOLEAUTOMATION = $100;
- TYPEFLAG_FNONEXTENSIBLE = $80;
- TYPEFLAG_FDUAL = $40;
- TYPEFLAG_FCONTROL = $20;
- TYPEFLAG_FHIDDEN = $10;
- TYPEFLAG_FPREDECLID = 8;
- TYPEFLAG_FLICENSED = 4;
- TYPEFLAG_FCANCREATE = 2;
- TYPEFLAG_FAPPOBJECT = 1;
-
- FUNCFLAG_FHIDDEN = $40;
- FUNCFLAG_FDEFAULTBIND = $20;
- FUNCFLAG_FDISPLAYBIND = $10;
- FUNCFLAG_FREQUESTEDIT = 8;
- FUNCFLAG_FBINDABLE = 4;
- FUNCFLAG_FSOURCE = 2;
- FUNCFLAG_FRESTRICTED = 1;
-
- VARFLAG_FHIDDEN = $40;
- VARFLAG_FDEFAULTBIND = $20;
- VARFLAG_FDISPLAYBIND = $10;
- VARFLAG_FREQUESTEDIT = 8;
- VARFLAG_FBINDABLE = 4;
- VARFLAG_FSOURCE = 2;
- VARFLAG_FREADONLY = 1;
-
- IMPLTYPEFLAG_FDEFAULT = 1;
- IMPLTYPEFLAG_FSOURCE = 2;
- IMPLTYPEFLAG_FRESTRICTED = 4;
-
- { flags for RegisterActiveObject }
- ACTIVEOBJECT_STRONG = 0;
- ACTIVEOBJECT_WEAK = 1;
-
- { INVOKEKIND enum }
- INVOKE_FUNC = 1;
- INVOKE_PROPERTYGET = 2;
- INVOKE_PROPERTYPUT = 4;
- INVOKE_PROPERTYPUTREF = 8;
-
-
- type
- BSTR = PChar;
- POLESTR = PChar;
- PCOLESTR = PChar;
-
- SAFEARRAYBOUND = record
- cElements: Longint;
- lLbound: Longint;
- end;
-
- SAFEARRAY = record
- cDims: Longint;
- fFeatures: Longint;
- cbElements: Longint;
- cLocks: Longint;
- handle: Longint;
- pvData: Pointer;
- rgsabound: array [0..1] of SAFEARRAYBOUND;
- end;
-
- VARIANT_BOOL = Integer;
- DATE = Double;
-
- { This is a helper record for use in handling currency. }
- CY = record
- Lo: Longint;
- Hi: Longint;
- end;
-
- VARTYPE = Integer;
- IDispatch = class;
- PSAFEARRAY = ^SAFEARRAY;
-
- PARRAYDESC = ^ARRAYDESC;
- PTYPEDESC = ^TYPEDESC;
- PVARIANT = ^VARIANT;
- VARIANT = record
- vt: VARTYPE;
- wReserved1: Word;
- wReserved2: Word;
- wReserved3: Word;
- case Integer of
- VT_I2: (iVal: Integer); { VT_I2 }
- VT_I4: (lVal: Longint); { VT_I4 }
- VT_R4: (fltVal: Single); { VT_R4 }
- VT_R8: (dblVal: Double); { VT_R8 }
- VT_BOOL: (vbool: BOOL); { VT_BOOL }
- VT_ERROR: (scode: SCODE); { VT_ERROR }
- VT_CY: (cyVal: CY); { VT_CY }
- VT_DATE: (date: DATE); { VT_DATE }
- VT_BSTR: (bstrVal: BSTR); { VT_BSTR }
- VT_UNKNOWN: (punkVal: IUnknown); { VT_UNKNOWN }
- VT_DISPATCH: (pdispVal: IDispatch); { VT_DISPATCH }
- VT_ARRAY: (parray: SAFEARRAY); { VT_ARRAY|* }
- VT_BYREF or VT_I2: (piVal: ^Integer); { VT_BYREF|VT_I2 }
- VT_BYREF or VT_I4: (plVal: ^Longint); { VT_BYREF|VT_I4 }
- VT_BYREF or VT_R4: (pfltVal: ^Single); { VT_BYREF|VT_R4 }
- VT_BYREF or VT_R8: (pdblVal: ^Double); { VT_BYREF|VT_R8 }
- VT_BYREF or VT_BOOL: (pbool: ^BOOL); { VT_BYREF|VT_BOOL }
- VT_BYREF or VT_ERROR: (pscode: ^SCODE); { VT_BYREF|VT_ERROR}
- VT_BYREF or VT_CY: (pcyVal: ^CY); { VT_BYREF|VT_CY }
- VT_BYREF or VT_DATE: (pdate: ^DATE); { VT_BYREF|VT_DATE }
- VT_BYREF or VT_BSTR: (pbstrVal: ^BSTR); { VT_BYREF|VT_BSTR }
- VT_BYREF or VT_UNKNOWN: (ppunkVal: ^IUnknown); { VT_BYREF|VT_UNKNOWN}
- VT_BYREF or VT_DISPATCH: (ppdispVal: ^IDispatch);{ VT_BYREF|VT_DISPATCH}
- VT_BYREF or VT_ARRAY: (pparray: ^SAFEARRAY); { VT_BYREF|VT_ARRAY|* }
- VT_BYREF or VT_VARIANT: (pvarVal: PVARIANT); { VT_BYREF|VT_VARIANT }
- end;
-
- VARIANTARG = VARIANT;
- PVARIANTARG = ^VARIANTARG;
-
- LCID = Longint;
- PSAFEARRAYBOUND = ^SAFEARRAYBOUND;
- PHRESULT = ^HRESULT;
-
- {---------------------------------------------------------------------}
- { ITypeLib }
- {---------------------------------------------------------------------}
-
- DISPID = Longint;
- MEMBERID = DISPID;
- SYSKIND = (SYS_WIN16, SYS_WIN32, SYS_MAC);
- LIBFLAGS = (LIBFLAG_ZERO, LIBFLAG_FRESTRICTED, LIBFLAG_FCONTROL,
- LIBFLAG_THREE, LIBFLAG_FHIDDEN);
-
- PTLIBATTR = ^TLIBATTR;
- TLIBATTR = record
- guid: GUID; { globally unique library id }
- lcid: LCID; { locale of the TypeLibrary }
- syskind: SYSKIND;
- wMajorVerNum: Word;
- wMinorVerNum: Word;
- wLibFlags: Word;
- end;
-
- TYPEKIND = (TKIND_ENUM, TKIND_RECORD, TKIND_MODULE, TKIND_INTERFACE, TKIND_DISPATCH,
- TKIND_COCLASS, TKIND_ALIAS, TKIND_UNION, TKIND_MAX);
-
- ITypeInfo = class;
- ITypeComp = class;
- ITypeLib = class(IUnknown)
- function QueryInterface(const riid: IID; var ppvObj: Pointer): HResult; virtual; cdecl; export; abstract;
- function AddRef: Longint; virtual; cdecl; export; abstract;
- function Release: Longint; virtual; cdecl; export; abstract;
- function GetTypeInfoCount: Integer; virtual; cdecl; export; abstract;
- function GetTypeInfo(index: Integer; var pptinfo: ITypeInfo): HResult; virtual; cdecl; export; abstract;
- function GetTypeInfoType(index: Integer; var ptypekind: TYPEKIND): HResult;
- virtual; cdecl; export; abstract;
- function GetTypeInfoOfGuid(const guid: IID; var pptinfo: ITypeInfo): HResult;
- virtual; cdecl; export; abstract;
- function GetLibAttr(var pptlibattr: PTLIBATTR): HResult; virtual; cdecl; export; abstract;
- function GetTypeComp(var pptcomp: ITypeComp): HResult; virtual; cdecl; export; abstract;
- function GetDocumentation(index: Integer; var pbstrName: BSTR;
- var pbstrDocString: BSTR; var pdwHelpContext: Longint;
- var pbstrHelpFile: BSTR): HResult; virtual; cdecl; export; abstract;
- function IsName(szNameBuf: PChar; lHashVal: Longint; var lpfName: Integer): HResult;
- virtual; cdecl; export; abstract;
- function FindName(szNameBuf: PChar; lHashVal: Longint; var rgptinfo: ITypeInfo;
- var rgmemid: MEMBERID; var pcFound: Word): HResult; virtual; cdecl; export; abstract;
- procedure ReleaseTLibAttr(var ptlibattr: TLIBATTR); virtual; cdecl; export; abstract;
- end;
-
-
- {---------------------------------------------------------------------}
- { ITypeInfo }
- {---------------------------------------------------------------------}
-
- HREFTYPE = Longint;
-
- TYPEDESC = record
- case Integer of
- VT_PTR: (ptdesc: PTYPEDESC; vt: VARTYPE);
- VT_CARRAY: (padesc: PARRAYDESC);
- VT_USERDEFINED: (hreftype: HREFTYPE);
- {vt: VARTYPE; ICS! }
- end;
-
- ARRAYDESC = record
- tdescElem: TYPEDESC; { element type }
- cDims: Word; { dimension count }
- rgbounds: array [0..1] of SAFEARRAYBOUND; { variable length array of bounds }
- end;
-
- IDLDESC = record
- bstrIDLInfo: BSTR; { reserved, but original name retained for compatibilty }
- wIDLFlags: Word; { IN, OUT, etc }
- end;
-
- PELEMDESC = ^ELEMDESC;
- ELEMDESC = record
- tdesc: TYPEDESC; { the type of the element }
- idldesc: IDLDESC; { info for remoting the element }
- end;
-
- PTYPEATTR = ^TYPEATTR;
- TYPEATTR = record
- guid: GUID; { the GUID of the TypeInfo }
- lcid: LCID; { locale of member names and doc strings }
- dwReserved: Longint;
- memidConstructor: MEMBERID; { ID of constructor, MEMBERID_NIL if none }
- memidDestructor: MEMBERID; { ID of destructor, MEMBERID_NIL if none }
- pstrSchema: PChar; { reserved for future use }
- cbSizeInstance: Longint;{ the size of an instance of this type }
- typekind: TYPEKIND; { the kind of type this typeinfo describes }
- cFuncs: Word; { number of functions }
- cVars: Word; { number of variables / data members }
- cImplTypes: Word; { number of implemented interfaces }
- cbSizeVft: Word; { the size of this types virtual func table }
- cbAlignment: Word; { the alignment for an instance of this type }
- wTypeFlags: Word;
- wMajorVerNum: Word;{ major version number }
- wMinorVerNum: Word;{ minor version number }
- tdescAlias: TYPEDESC; { if typekind == TKIND_ALIAS this specifies
- the type for which this type is an alias }
- idldescType: IDLDESC; { IDL attributes of the described type }
- end;
-
- DISPPARAMS = record
- rgvarg: PVARIANTARG;
- rgdispidNamedArgs: ^DISPID;
- cArgs: Word;
- cNamedArgs: Word;
- end;
-
- PEXEPINFO = ^EXCEPINFO;
- TfnDeferredFillIn = function(ExInfo: PEXEPINFO): HResult;
- EXCEPINFO = record
- wCode: Word; { An error code describing the error. }
- { Either (but not both) the wCode or }
- { scode fields must be set }
- wReserved: Word;
-
- { A textual, human readable name of the source of the exception.
- It is up to the IDispatch implementor to fill this in.
- Typically this will be an application name. }
- bstrSource: BSTR;
-
- { A textual, human readable description of the error.
- If no description is available, NULL should be used. }
- bstrDescription: BSTR;
-
- { Fully qualified drive, path, and file name of a help file with more
- information about the error. If no help is available, NULL should be used. }
- bstrHelpFile: BSTR;
-
- dwHelpContext: Longint; { help context of topic within the help file. }
- pvReserved: Pointer;
-
- { Use of this field allows an application to defer filling in
- the bstrDescription, bstrHelpFile, and dwHelpContext fields
- until they are needed. This field might be used, for example,
- if loading the string for the error is a time-consuming
- operation. If deferred fill-in is not desired, this field should
- be set to NULL. }
- pfnDeferredFillIn: TfnDeferredFillIn;
-
- scode: SCODE; { An SCODE describing the error. }
- end;
-
- CALLCONV = (CC_ZERO, CC_CDECL, CC_PASCAL, CC_MACPASCAL, CC_STDCALL, CC_RESERVED,
- CC_SYSCALL, CC_MPWCDECL, CC_MPWPASCAL, CC_MAX);
- FUNCKIND = (FUNC_VIRTUAL, FUNC_PUREVIRTUAL, FUNC_NONVIRTUAL, FUNC_STATIC, FUNC_DISPATCH);
- INVOKEKIND = Integer;
-
- PFUNCDESC = ^FUNCDESC;
- FUNCDESC = record
- memid: MEMBERID;
- lprgscode: ^SCODE;
- lprgelemdescParam: PELEMDESC; { array of parameter types }
- fkind: FUNCKIND;
- ikind: INVOKEKIND;
- cconv: CALLCONV;
- cParams: Integer;
- cParamsOpt: Integer;
- oVft: Integer;
- cScodes: Integer;
- elemdescFunc: ELEMDESC;
- wFuncFlags: Word;
- end;
-
- VARKIND = (VAR_PERINSTANCE, VAR_STATIC, VAR_CONST, VAR_DISPATCH);
-
- PVARDESC = ^VARDESC;
- VARDESC = record
- memid: MEMBERID;
- lpstrSchema: PChar; { reserved for future use }
- case Integer of
- VAR_PERINSTANCE: (oInst: Longint; elemdescVar: ELEMDESC; wVarFlags: Word; vk: VARKIND);
- VAR_CONST: (lpvarValue: PVARIANT); { - the value of the constant }
- {elemdescVar: ELEMDESC;
- wVarFlags: Word;
- varkind: VARKIND; ICS! }
- end;
-
- ITypeInfo = class(IUnknown)
- function QueryInterface(const riid: IID; var ppvObj: Pointer): HResult;
- virtual; cdecl; export; abstract;
- function AddRef: Longint; virtual; cdecl; export; abstract;
- function Release: Longint; virtual; cdecl; export; abstract;
- function GetTypeAttr(var pptypeattr: PTYPEATTR): HResult; virtual; cdecl; export; abstract;
- function GetTypeComp(var pptcomp: ITypeComp): HResult; virtual; cdecl; export; abstract;
- function GetFuncDesc(index: Integer; var ppfuncdesc: PFUNCDESC): HResult;
- virtual; cdecl; export; abstract;
- function GetVarDesc(index: Integer; var ppvardesc: PVARDESC): HResult;
- virtual; cdecl; export; abstract;
- function GetNames(memid: MEMBERID; var rgbstrNames: BSTR; cMaxNames: Integer;
- var pcNames: Integer): HResult; virtual; cdecl; export; abstract;
- function GetRefTypeOfImplType(index: Integer; var phreftype: HREFTYPE): HResult;
- virtual; cdecl; export; abstract;
- function GetImplTypeFlags(index: Integer; var pimpltypeflags: Integer): HResult;
- virtual; cdecl; export; abstract;
- function GetIDsOfNames(var rgszNames: PChar; cNames: Integer;
- var rgmemid: MEMBERID): HResult; virtual; cdecl; export; abstract;
- function Invoke(pvInstance: Pointer; memid: MEMBERID; wFlags: Word;
- var pdispparams: DISPPARAMS; var pvarResult: VARIANT;
- var pexcepinfo: EXCEPINFO; var puArgErr: Integer): HResult; virtual; cdecl; export; abstract;
- function GetDocumentation(memid: MEMBERID; var pbstrName: BSTR;
- var pbstrDocString: BSTR; var pdwHelpContext: Longint;
- var pbstrHelpFile: BSTR): HResult; virtual; cdecl; export; abstract;
- function GetDllEntry(memid: MEMBERID; invkind: INVOKEKIND;
- var pbstrDllName: BSTR; var pbstrName: BSTR; var pwOrdinal: Word): HResult;
- virtual; cdecl; export; abstract;
- function GetRefTypeInfo(hreftype: HREFTYPE; var pptinfo: ITypeInfo): HResult;
- virtual; cdecl; export; abstract;
- function AddressOfMember(memid: MEMBERID; invkind: INVOKEKIND;
- var ppv: Pointer): HResult; virtual; cdecl; export; abstract;
- function CreateInstance(var punkOuter: IUnknown; const riid: IID;
- var ppvObj: Pointer): HResult; virtual; cdecl; export; abstract;
- function GetMops(memid: MEMBERID; var pbstrMops: BSTR): HResult;
- virtual; cdecl; export; abstract;
- function GetContainingTypeLib(var pptlib: ITypeLib; var pindex: Integer): HResult;
- virtual; cdecl; export; abstract;
- procedure ReleaseTypeAttr(var ptypeattr: TYPEATTR); virtual; cdecl; export; abstract;
- procedure ReleaseFuncDesc(var pfuncdesc: FUNCDESC); virtual; cdecl; export; abstract;
- procedure ReleaseVarDesc(var pvardesc: VARDESC); virtual; cdecl; export; abstract;
- end;
-
- PDISPPARAMS = ^DISPPARAMS;
-
- {---------------------------------------------------------------------}
- { ITypeComp }
- {---------------------------------------------------------------------}
-
- DESCKIND = (DESCKIND_NONE, DESCKIND_FUNCDESC, DESCKIND_VARDESC, DESCKIND_TYPECOMP,
- DESCKIND_IMPLICITAPPOBJ, DESCKIND_MAX);
-
- BINDPTR = record
- case Integer of
- 1: (lpfuncdesc: PFUNCDESC);
- 2: (lpvardesc: PVARDESC);
- 3: (lptcomp: ITypeComp);
- end;
-
- { ITypeComp methods }
-
- ITypeComp = class(IUnknown)
- function QueryInterface(const riid: IID; var ppvObj: Pointer): HResult;
- virtual; cdecl; export; abstract;
- function AddRef: Longint; virtual; cdecl; export; abstract;
- function Release: Longint; virtual; cdecl; export; abstract;
- function Bind(szName: PChar; lHashVal: Longint; wflags: Word; var pptinfo:
- ITypeInfo; var pdesckind: DESCKIND; var pbindptr:
- BINDPTR): HResult; virtual; cdecl; export; abstract;
- function BindType(szName: PChar; lHashVal: Longint; var pptinfo: ITypeInfo;
- var pptcomp: ITypeComp): HResult; virtual; cdecl;
- export; abstract;
- end;
-
- {---------------------------------------------------------------------}
- { ICreateTypeLib }
- {---------------------------------------------------------------------}
-
- ICreateTypeInfo = class;
- ICreateTypeLib = class(IUnknown)
- function QueryInterface(const riid: IID; var ppvObj: Pointer): HResult;
- virtual; cdecl; export; abstract;
- function AddRef: Longint; virtual; cdecl; export; abstract;
- function Release: Longint; virtual; cdecl; export; abstract;
- function CreateTypeInfo(szName: PChar; tkind: TYPEKIND;
- var lplpictinfo: ICreateTypeInfo): HResult; virtual; cdecl; export; abstract;
- function SetName(szName: PChar): HResult; virtual; cdecl; export; abstract;
- function SetVersion(wMajorVerNum: Word; wMinorVerNum: Word): HResult; virtual; cdecl; export; abstract;
- function SetGuid(const guid: IID): HResult; virtual; cdecl; export; abstract;
- function SetDocString(szDoc: PChar): HResult; virtual; cdecl; export; abstract;
- function SetHelpFileName(szHelpFileName: PChar): HResult; virtual; cdecl; export; abstract;
- function SetHelpContext(dwHelpContext: Longint): HResult; virtual; cdecl; export; abstract;
- function SetLcid(lcid: LCID): HResult; virtual; cdecl; export; abstract;
- function SetLibFlags(uLibFlags: Integer): HResult; virtual; cdecl; export; abstract;
- function SaveAllChanges: HResult; virtual; cdecl; export; abstract;
- end;
-
- LPCREATETYPELIB = ^ICreateTypeLib;
-
- {---------------------------------------------------------------------}
- { ICreateTypeInfo }
- {---------------------------------------------------------------------}
-
- { ICreateTypeInfo methods }
-
- ICreateTypeInfo = class(IUnknown)
- function QueryInterface(const riid: IID; var ppvObj: Pointer): HResult;
- virtual; cdecl; export; abstract;
- function AddRef: Longint; virtual; cdecl; export; abstract;
- function Release: Longint; virtual; cdecl; export; abstract;
- function SetGuid(const guid: IID): HResult; virtual; cdecl; export; abstract;
- function SetTypeFlags(uTypeFlags: Integer): HResult; virtual; cdecl; export; abstract;
- function SetDocString(pstrDoc: PChar): HResult; virtual; cdecl; export; abstract;
- function SetHelpContext(dwHelpContext: Longint): HResult; virtual; cdecl; export; abstract;
- function SetVersion(wMajorVerNum: Word; wMinorVerNum: Word): HResult;
- virtual; cdecl; export; abstract;
- function AddRefTypeInfo(ptinfo: ITypeInfo; var phreftype: HREFTYPE): HResult;
- virtual; cdecl; export; abstract;
- function AddFuncDesc(index: Integer; var pfuncdesc: FUNCDESC): HResult;
- virtual; cdecl; export; abstract;
- function AddImplType(index: Integer; hreftype: HREFTYPE): HResult;
- virtual; cdecl; export; abstract;
- function SetImplTypeFlags(index: Integer; impltypeflags: Integer): HResult;
- virtual; cdecl; export; abstract;
- function SetAlignment(cbAlignment: Word): HResult; virtual; cdecl; export; abstract;
- function SetSchema(lpstrSchema: PChar): HResult; virtual; cdecl; export; abstract;
- function AddVarDesc(index: Integer; var pvardesc: VARDESC): HResult;
- virtual; cdecl; export; abstract;
- function SetFuncAndParamNames(index: Integer; var rgszNames: PChar;
- cNames: Integer): HResult; virtual; cdecl; export; abstract;
- function SetVarName(index: Integer; szName: PChar): HResult; virtual; cdecl; export; abstract;
- function SetTypeDescAlias(var ptdescAlias: TYPEDESC): HResult; virtual; cdecl; export; abstract;
- function DefineFuncAsDllEntry(index: Integer; szDllName: PChar;
- szProcName: PChar): HResult; virtual; cdecl; export; abstract;
- function SetFuncDocString(index: Integer; szDocString: PChar): HResult;
- virtual; cdecl; export; abstract;
- function SetVarDocString(index: Integer; szDocString: PChar): HResult;
- virtual; cdecl; export; abstract;
- function SetFuncHelpContext(index: Integer; dwHelpContext: Longint): HResult;
- virtual; cdecl; export; abstract;
- function SetVarHelpContext(index: Integer; dwHelpContext: Longint): HResult;
- virtual; cdecl; export; abstract;
- function SetMops(index: Integer; bstrMops: BSTR): HResult; virtual; cdecl; export; abstract;
- function SetTypeIdldesc(var pidldesc: IDLDESC): HResult; virtual; cdecl; export; abstract;
- function LayOut: HResult; virtual; cdecl; export; abstract;
- end;
-
- PIDLDESC = ^IDLDESC;
- LPCREATETYPEINFO = ^ICreateTypeInfo;
-
- {---------------------------------------------------------------------}
- { IEnumVARIANT }
- {---------------------------------------------------------------------}
-
- IEnumVARIANT = class(IUnknown)
- function QueryInterface(const riid: IID; var ppvObj: Pointer): HResult;
- virtual; cdecl; export; abstract;
- function AddRef: Longint; virtual; cdecl; export; abstract;
- function Release: Longint; virtual; cdecl; export; abstract;
- function Next(celt: Longint; var rgvar: VARIANT;
- var pceltFetched: Longint): HResult; virtual; cdecl; export; abstract;
- function Skip(celt: Longint): HResult; virtual; cdecl; export; abstract;
- function Reset: HResult; virtual; cdecl; export; abstract;
- function Clone(var ppenum: IEnumVARIANT): HResult; virtual; cdecl; export; abstract;
- end;
-
- {---------------------------------------------------------------------}
- { IDispatch }
- {---------------------------------------------------------------------}
-
- { IDispatch methods }
-
- IDispatch = class(IUnknown)
- function QueryInterface(const riid: IID; var ppvObj: Pointer): HResult;
- virtual; cdecl; export; abstract;
- function AddRef: Longint; virtual; cdecl; export; abstract;
- function Release: Longint; virtual; cdecl; export; abstract;
- function GetTypeInfoCount(var pctinfo: Integer): HResult; virtual; cdecl; export; abstract;
- function GetTypeInfo(itinfo: Integer; lcid: LCID; var pptinfo: ITypeInfo): HResult; virtual; cdecl; export; abstract;
- function GetIDsOfNames(const riid: IID; var rgszNames: PChar;
- cNames: Integer; lcid: LCID; var rgdispid: DISPID): HResult; virtual; cdecl; export; abstract;
- function Invoke(dispidMember: DISPID; const riid: IID; lcid: LCID;
- wFlags: Word; var pdispparams: DISPPARAMS; var pvarResult: VARIANT;
- var pexcepinfo: EXCEPINFO; var puArgErr: Integer): HResult; virtual; cdecl; export; abstract;
- end;
-
- LPDISPATCH = ^IDispatch;
-
- {---------------------------------------------------------------------}
- { IErrorInfo, et al}
- {---------------------------------------------------------------------}
-
- { IErrorInfo methods }
-
- IErrorInfo = class(IUnknown)
- function QueryInterface(const riid: IID; var ppvObj: Pointer): HResult; virtual; cdecl; export; abstract;
- function AddRef: Longint; virtual; cdecl; export; abstract;
- function Release: Longint; virtual; cdecl; export; abstract;
- function GetGUID(var pguid: GUID): HResult; virtual; cdecl; export; abstract;
- function GetSource(var pbstrSource: BSTR): HResult; virtual; cdecl; export; abstract;
- function GetDescription(var pbstrDescription: BSTR): HResult; virtual; cdecl; export; abstract;
- function GetHelpFile(var pbstrHelpFile: BSTR): HResult; virtual; cdecl; export; abstract;
- function GetHelpContext(var pdwHelpContext: Longint): HResult; virtual; cdecl; export; abstract;
- end;
-
-
- { ICreateErrorInfo methods }
-
- ICreateErrorInfo = class(IUnknown)
- function QueryInterface(const riid: IID; var ppvObj: Pointer): HResult; virtual; cdecl; export; abstract;
- function AddRef: Longint; virtual; cdecl; export; abstract;
- function Release: Longint; virtual; cdecl; export; abstract;
- function SetGUID(const rguid: IID): HResult; virtual; cdecl; export; abstract;
- function SetSource(szSource: POLESTR): HResult; virtual; cdecl; export; abstract;
- function SetDescription(szDescription: POLESTR): HResult; virtual; cdecl; export; abstract;
- function SetHelpFile(szHelpFile: POLESTR): HResult; virtual; cdecl; export; abstract;
- function SetHelpContext(dwHelpContext: Longint): HResult; virtual; cdecl; export; abstract;
- end;
-
-
- { ISupportErrorInfo methods }
-
- ISupportErrorInfo = class(IUnknown)
- function QueryInterface(const riid: IID; var ppvObj: Pointer): HResult; virtual; cdecl; export; abstract;
- function AddRef: Longint; virtual; cdecl; export; abstract;
- function Release: Longint; virtual; cdecl; export; abstract;
- function InterfaceSupportsErrorInfo(const riid: IID): HResult; virtual; cdecl; export; abstract;
- end;
-
- {---------------------------------------------------------------------}
- { IDispatch implementation support }
- {---------------------------------------------------------------------}
-
- PPARAMDATA = ^PARAMDATA;
- PARAMDATA = record
- szName: BSTR; { parameter name }
- vt: VARTYPE; { parameter type }
- end;
-
- PMETHODDATA = ^METHODDATA;
- METHODDATA = record
- szName: BSTR; { method name }
- ppdata: PPARAMDATA; { pointer to an array of PARAMDATAs }
- dispid: DISPID; { method ID }
- iMeth: Integer; { method index }
- cc: CALLCONV; { calling convention }
- cArgs: Integer; { count of arguments }
- wFlags: Word; { same wFlags as on IDispatch::Invoke() }
- vtReturn: VARTYPE;
- end;
-
- PINTERFACEDATA = ^INTERFACEDATA;
- INTERFACEDATA = record
- pmethdata: PMETHODDATA; { pointer to an array of METHODDATAs }
- cMembers: Integer; { count of members }
- end;
-
- {---------------------------------------------------------------------}
- { BSTR API }
- {---------------------------------------------------------------------}
-
- function SysAllocString(const p1: PCOLESTR): BSTR;
- function SysReAllocString(var p1: BSTR; const p2: PCOLESTR): Integer;
- function SysAllocStringLen(const p1: PCOLESTR; p2: Integer): BSTR;
- function SysReAllocStringLen(var p1: BSTR; const p2: PCOLESTR; p3: Integer): Integer;
- procedure SysFreeString(bstr: BSTR);
- function SysStringLen(p1: BSTR): Word;
-
- {$IFDEF WIN32}
- function SysStringByteLen(p1: BSTR): Word;
- function SysAllocStringByteLen(psz: PChar; len: Word): BSTR;
- {$ENDIF}
-
- {---------------------------------------------------------------------}
- { Time API }
- {---------------------------------------------------------------------}
-
- function DosDateTimeToVariantTime(wDosDate: Word; wDosTime: Word; var pvtime: DATE): Integer;
- function VariantTimeToDosDateTime(vtime: DATE; var pwDosDate: Word; var pwDosTime: Word): Integer;
-
- {---------------------------------------------------------------------}
- { SafeArray API }
- {---------------------------------------------------------------------}
-
- function SafeArrayAllocDescriptor(cDims: Integer; var ppsaOut: PSAFEARRAY): HResult;
- function SafeArrayAllocData(var psa: SAFEARRAY): HResult;
- function SafeArrayCreate(vt: VARTYPE; cDims: Integer; var rgsabound: SAFEARRAYBOUND): PInteger;
- function SafeArrayDestroyDescriptor(var psa: SAFEARRAY): HResult;
- function SafeArrayDestroyData(var psa: SAFEARRAY): HResult;
- function SafeArrayDestroy(var psa: SAFEARRAY): HResult;
- function SafeArrayRedim(var psa: SAFEARRAY; var psaboundNew: SAFEARRAYBOUND): HResult;
- function SafeArrayGetDim(var psa: SAFEARRAY): Word;
- function SafeArrayGetElemsize(var psa: SAFEARRAY): Word;
- function SafeArrayGetUBound(var psa: SAFEARRAY; nDim: Integer; var plUbound: Longint): HResult;
- function SafeArrayGetLBound(var psa: SAFEARRAY; nDim: Integer; var plLbound: Longint): HResult;
- function SafeArrayLock(var psa: SAFEARRAY): HResult;
- function SafeArrayUnlock(var psa: SAFEARRAY): HResult;
- function SafeArrayAccessData(var psa: SAFEARRAY; var ppvData: HResult): HResult;
- function SafeArrayUnaccessData(var psa: SAFEARRAY): HResult;
- function SafeArrayGetElement(var psa: SAFEARRAY; var rgIndices: Longint; pv: HResult): HResult;
- function SafeArrayPutElement(var psa: SAFEARRAY; var rgIndices: Longint; pv: HResult): HResult;
- function SafeArrayCopy(var psa: SAFEARRAY; var ppsaOut: PSAFEARRAY): HResult;
- function SafeArrayPtrOfIndex(var psa: SAFEARRAY; var rgIndices: Longint; var ppvData: HResult): HResult;
-
- {---------------------------------------------------------------------}
- { VARIANT API }
- {---------------------------------------------------------------------}
-
- procedure VariantInit(var VarVal: VARIANTARG);
- function VariantClear(var pvarg: VARIANTARG): HResult;
- function VariantCopy(var pvargDest: VARIANTARG; var pvargSrc: VARIANTARG): HResult;
- function VariantCopyInd(var pvarDest: VARIANT; var pvargSrc: VARIANTARG): HResult;
- function VariantChangeType(var pvargDest: VARIANTARG; var pvarSrc: VARIANTARG;
- wFlags: Word; vt: VARTYPE): HResult;
- function VariantChangeTypeEx(var pvargDest: VARIANTARG; var pvarSrc:
- VARIANTARG; lcid: LCID; wFlags: Word; vt: VARTYPE): HResult;
-
- {---------------------------------------------------------------------}
- { VARTYPE Coercion API }
- {---------------------------------------------------------------------}
-
- { Note: The routines that convert from a string are defined
- to take a OLECHAR rather than a BSTR because no allocation is
- required, and this makes the routines a bit more generic.
- They may of course still be passed a BSTR as the strIn param. }
-
- { Any of the coersion functions that converts either from or to a string
- takes an additional lcid and dwFlags arguments. The lcid argument allows
- locale specific parsing to occur. The dwFlags allow additional function
- specific condition to occur. All function that accept the dwFlags argument
- can include either 0 or LOCALE_NOUSEROVERRIDE flag. In addition, the
- VarDateFromStr functions also accepts the VAR_TIMEVALUEONLY and
- VAR_DATEVALUEONLY flags }
-
- function VarUI1FromI2(sIn: Integer; pbOut: PChar): HResult;
- function VarUI1FromI4(lIn: Longint; pbOut: PChar): HResult;
- function VarUI1FromR4(fltIn: Single; pbOut: PChar): HResult;
- function VarUI1FromR8(dblIn: DATE; pbOut: PChar): HResult;
- function VarUI1FromCy(cyIn: CY; pbOut: PChar): HResult;
- function VarUI1FromDate(dateIn: DATE; pbOut: PChar): HResult;
- function VarUI1FromStr(strIn: BSTR; lcid: LCID; dwFlags: Longint; pbOut: PChar): HResult;
- function VarUI1FromDisp(var pdispIn: IDispatch; lcid: LCID; pbOut: PChar): HResult;
- function VarUI1FromBool(boolIn: VARIANT_BOOL; pbOut: PChar): HResult;
- function VarI2FromUI1(bIn: Byte; var psOut: Integer): HResult;
- function VarI2FromI4(lIn: Longint; var psOut: Integer): HResult;
- function VarI2FromR4(fltIn: Single; var psOut: Integer): HResult;
- function VarI2FromR8(dblIn: DATE; var psOut: Integer): HResult;
- function VarI2FromCy(cyIn: CY; var psOut: Integer): HResult;
- function VarI2FromDate(dateIn: DATE; var psOut: Integer): HResult;
- function VarI2FromStr(strIn: BSTR; lcid: LCID; dwFlags: Longint; var psOut: Integer): HResult;
- function VarI2FromDisp(var pdispIn: IDispatch; lcid: LCID; var psOut: Integer): HResult;
- function VarI2FromBool(boolIn: VARIANT_BOOL; var psOut: Integer): HResult;
- function VarI4FromUI1(bIn: Byte; var plOut: Longint): HResult;
- function VarI4FromI2(sIn: Integer; var plOut: Longint): HResult;
- function VarI4FromR4(fltIn: Single; var plOut: Longint): HResult;
- function VarI4FromR8(dblIn: DATE; var plOut: Longint): HResult;
- function VarI4FromCy(cyIn: CY; var plOut: Longint): HResult;
- function VarI4FromDate(dateIn: DATE; var plOut: Longint): HResult;
- function VarI4FromStr(strIn: BSTR; lcid: LCID; dwFlags: Longint; var plOut: Longint): HResult;
- function VarI4FromDisp(var pdispIn: IDispatch; lcid: LCID; var plOut: Longint): HResult;
- function VarI4FromBool(boolIn: VARIANT_BOOL; var plOut: Longint): HResult;
- function VarR4FromUI1(bIn: Byte; var pfltOut: Single): HResult;
- function VarR4FromI2(sIn: Integer; var pfltOut: Single): HResult;
- function VarR4FromI4(lIn: Longint; var pfltOut: Single): HResult;
- function VarR4FromR8(dblIn: DATE; var pfltOut: Single): HResult;
- function VarR4FromCy(cyIn: CY; var pfltOut: Single): HResult;
- function VarR4FromDate(dateIn: DATE; var pfltOut: Single): HResult;
- function VarR4FromStr(strIn: BSTR; lcid: LCID; dwFlags: Longint; var pfltOut: Single): HResult;
- function VarR4FromDisp(var pdispIn: IDispatch; lcid: LCID; var pfltOut: Single): HResult;
- function VarR4FromBool(boolIn: VARIANT_BOOL; var pfltOut: Single): HResult;
- function VarR8FromUI1(bIn: Byte; var pdblOut: DATE): HResult;
- function VarR8FromI2(sIn: Integer; var pdblOut: DATE): HResult;
- function VarR8FromI4(lIn: Longint; var pdblOut: DATE): HResult;
- function VarR8FromR4(fltIn: Single; var pdblOut: DATE): HResult;
- function VarR8FromCy(cyIn: CY; var pdblOut: DATE): HResult;
- function VarR8FromDate(dateIn: DATE; var pdblOut: DATE): HResult;
- function VarR8FromStr(strIn: BSTR; lcid: LCID; dwFlags: Longint; var pdblOut: DATE): HResult;
- function VarR8FromDisp(var pdispIn: IDispatch; lcid: LCID; var pdblOut: DATE): HResult;
- function VarR8FromBool(boolIn: VARIANT_BOOL; var pdblOut: DATE): HResult;
- function VarDateFromUI1(bIn: Byte; var pdateOut: DATE): HResult;
- function VarDateFromI2(sIn: Integer; var pdateOut: DATE): HResult;
- function VarDateFromI4(lIn: Longint; var pdateOut: DATE): HResult;
- function VarDateFromR4(fltIn: Single; var pdateOut: DATE): HResult;
- function VarDateFromR8(dblIn: DATE; var pdateOut: DATE): HResult;
- function VarDateFromCy(cyIn: CY; var pdateOut: DATE): HResult;
- function VarDateFromStr(strIn: BSTR; lcid: LCID; dwFlags: Longint; var pdateOut: DATE): HResult;
- function VarDateFromDisp(var pdispIn: IDispatch; lcid: LCID; var pdateOut: DATE): HResult;
- function VarDateFromBool(boolIn: VARIANT_BOOL; var pdateOut: DATE): HResult;
- function VarCyFromUI1(bIn: Byte; var pcyOut: CY): HResult;
- function VarCyFromI2(sIn: Integer; var pcyOut: CY): HResult;
- function VarCyFromI4(lIn: Longint; var pcyOut: CY): HResult;
- function VarCyFromR4(fltIn: Single; var pcyOut: CY): HResult;
- function VarCyFromR8(dblIn: DATE; var pcyOut: CY): HResult;
- function VarCyFromDate(dateIn: DATE; var pcyOut: CY): HResult;
- function VarCyFromStr(strIn: BSTR; lcid: LCID; dwFlags: Longint; var pcyOut: CY): HResult;
- function VarCyFromDisp(var pdispIn: IDispatch; lcid: LCID; var pcyOut: CY): HResult;
- function VarCyFromBool(boolIn: VARIANT_BOOL; var pcyOut: CY): HResult;
- function VarBstrFromUI1(bVal: Byte; lcid: LCID; dwFlags: Longint; var pbstrOut: BSTR): HResult;
- function VarBstrFromI2(iVal: Integer; lcid: LCID; dwFlags: Longint; var pbstrOut: BSTR): HResult;
- function VarBstrFromI4(lIn: Longint; lcid: LCID; dwFlags: Longint; var pbstrOut: BSTR): HResult;
- function VarBstrFromR4(fltIn: Single; lcid: LCID; dwFlags: Longint; var pbstrOut: BSTR): HResult;
- function VarBstrFromR8(dblIn: DATE; lcid: LCID; dwFlags: Longint; var pbstrOut: BSTR): HResult;
- function VarBstrFromCy(cyIn: CY; lcid: LCID; dwFlags: Longint; var pbstrOut: BSTR): HResult;
- function VarBstrFromDate(dateIn: DATE; lcid: LCID; dwFlags: Longint; var pbstrOut: BSTR): HResult;
- function VarBstrFromDisp(var pdispIn: IDispatch; lcid: LCID; dwFlags: Longint; var pbstrOut: BSTR): HResult;
- function VarBstrFromBool(boolIn: VARIANT_BOOL; lcid: LCID; dwFlags: Longint; var pbstrOut: BSTR): HResult;
- function VarBoolFromUI1(bIn: Byte; var pboolOut: VARIANT_BOOL): HResult;
- function VarBoolFromI2(sIn: Integer; var pboolOut: VARIANT_BOOL): HResult;
- function VarBoolFromI4(lIn: Longint; var pboolOut: VARIANT_BOOL): HResult;
- function VarBoolFromR4(fltIn: Single; var pboolOut: VARIANT_BOOL): HResult;
- function VarBoolFromR8(dblIn: DATE; var pboolOut: VARIANT_BOOL): HResult;
- function VarBoolFromDate(dateIn: DATE; var pboolOut: VARIANT_BOOL): HResult;
- function VarBoolFromCy(cyIn: CY; var pboolOut: VARIANT_BOOL): HResult;
- function VarBoolFromStr(strIn: BSTR; lcid: LCID; dwFlags: Longint; var pboolOut: VARIANT_BOOL): HResult;
- function VarBoolFromDisp(var pdispIn: IDispatch; lcid: LCID; var pboolOut: VARIANT_BOOL): HResult;
-
- {---------------------------------------------------------------------}
- { TypeInfo APIs }
- {---------------------------------------------------------------------}
-
- { compute a 32bit hash value for the given name based on the lcid and system kind }
- { Macro to compute a 32bit hash value for the given name based on the LCID }
- function LHashValOfName(lcid: LCID; const szName: PCOLESTR): Longint;
-
- { compute a 16bit hash value from 32 bit hash value }
- function WHashValOfLHashVal(lhashval: LongInt): Word;
-
- { Check if the hash values are compatible. }
- function IsHashValCompatible(lhashval1: LongInt; lhashval2: LongInt): Boolean;
-
-
- function LHashValOfNameSys(syskind: SYSKIND; lcid: LCID; const szName: PCOLESTR): Longint;
- function LoadTypeLib(const szFile: PCOLESTR; var pptlib: ITypeLib): HResult;
- function LoadRegTypeLib(const rguid: IID; wVerMajor: Word; wVerMinor: Word;
- lcid: LCID; var pptlib: ITypeLib): HResult;
- function QueryPathOfRegTypeLib(const guid: IID; wMaj: Word; wMin: Word; lcid: LCID;
- var lpbstrPathName: BSTR): HResult;
- function RegisterTypeLib(ptlib: ITypeLib; szFullPath: BSTR; szHelpDir: BSTR): HResult;
- function CreateTypeLib(syskind: SYSKIND; const szFile: PCOLESTR; var ppctlib: ICreateTypeLib): HResult;
-
- { ISupportErrorInfo methods }
- function SetErrorInfo(dwReserved: Longint; perrinfo: IErrorInfo): HResult;
- function GetErrorInfo(dwReserved: Longint; var pperrinfo: IErrorInfo): HResult;
- function CreateErrorInfo(var pperrinfo: ICreateErrorInfo): HResult;
-
- { IDispatch implementation support }
- function DispGetParam(var pdispparams: DISPPARAMS; position: Integer; vtTarg:
- VARTYPE; var pvarResult: VARIANT; var puArgErr: Integer): HResult;
- function DispGetIDsOfNames(ptinfo: ITypeInfo; var rgszNames: BSTR;
- cNames: Integer; var rgdispid: DISPID): HResult;
- function DispInvoke(_this: HResult; ptinfo: ITypeInfo; dispidMember: DISPID;
- wFlags: Word; var pparams: DISPPARAMS; var pvarResult: VARIANT;
- var pexcepinfo: EXCEPINFO; var puArgErr: Integer): HResult;
- function CreateDispTypeInfo(var pidata: INTERFACEDATA; lcid: LCID;
- var pptinfo: ITypeInfo): HResult;
- function CreateStdDispatch(var punkOuter: IUnknown; pvThis: HResult;
- ptinfo: ITypeInfo; var ppunkStdDisp: IUnknown): HResult;
-
- {---------------------------------------------------------------------}
- { Active Object Registration API }
- {---------------------------------------------------------------------}
-
- function RegisterActiveObject(var punk: IUnknown; const rclsid: IID;
- dwFlags: Longint; var pdwRegister: Longint): HResult;
- function RevokeActiveObject(dwRegister: Longint; pvReserved: HResult): HResult;
- function GetActiveObject(const rclsid: IID; pvReserved: HResult; var ppunk: IUnknown): HResult;
-
- {---------------------------------------------------------------------}
- { MISC API }
- {---------------------------------------------------------------------}
-
- function OaBuildVersion: Longint;
-
-
- implementation
-